CS236 Deep Generative Models Lecture 6
课程主页:https://deepgenerativemodels.github.io/
课件资料:https://github.com/Subhajit135/CS236_DGM,https://github.com/deepgenerativemodels/notes
视频地址:https://www.bilibili.com/video/av81625948?from=search&seid=4636291486683332935
这里回顾CS236 Lecture 6的课程内容,这一讲介绍了EM算法以及ELBO。
Partially observed data
假设我们有联合分布
$\mathbf X$为可观测变量,$\mathbf Z$为不可观测变量,数据集为$\mathcal{D}=\left\{\mathbf{x}^{(1)}, \cdots, \mathbf{x}^{(M)}\right\}$,那么数据的对数似然为
注意到下式很难计算
所以后续主要讨论如何对其处理。
First attempt: Naive Monte Carlo
利用恒等变形
所以可以使用蒙特卡洛模拟的方法估计上式
The EM Algorithm
利用KL散度,我们有恒等式
即
即对任意$q$,成立Evidence lower bound (ELBO)
当且仅当$q=p(\mathbf{z} | \mathbf{x} ; \theta)$时等号成立
记
我们如果想最大化$\log p(\mathbf{x} ; \theta)$,那么最大化其下界$F[q, \theta]$可以取得较好的效果,EM算法的本质是在$F[q, \theta]$上使用坐标上升:
- 初始化$\theta^{(0)}$
- $q^{(0)}=\arg \max _{q} F\left[q, \theta^{(0)}\right]=p\left(\mathbf{z} | \mathbf{x} ; \theta^{(0)}\right)$
- $\theta^{(1)}=\arg \max _{\theta} F\left[q^{(0)}, \theta\right]=\arg \max _{\theta} \sum_{z} q^{(0)}(\mathbf{z}) \log p(\mathbf{z}, \mathbf{x} ; \theta)$
- $q^{(1)}=\arg \max _{q} F\left[q, \theta^{(1)}\right]$
- …
不难看出我们有
The Variational EM Algorithm
还有一种变分EM算法:
重写为
变分EM对$F[\phi, \theta]$做坐标上升
- 初始化$\theta^{(0)}$
- $\phi^{(1)}=\arg \max _{\phi} F\left[\phi, \theta^{(0)}\right] \neq p\left(\mathbf{z} | \mathbf{x} ; \theta^{(0)}\right)$
- $\theta^{(1)}=\arg \max _{\theta} F\left[\phi^{(1)}, \theta\right]$(可以使用MC)
- $\phi^{(2)}=\arg \max _{\phi} F\left[\phi, \theta^{(1)}\right] \neq p\left(\mathbf{z} | \mathbf{x} ; \theta^{(1)}\right)$
- …
注意上述方法不一定保证收敛到局部最优。
The Evidence Lower bound
回顾之前介绍的ELBO:
图示如下:
The Evidence Lower bound applied to the entire dataset
将上述不等式应用到数据集中得到
所以
Learning via stochastic variational inference (SVI)
现在讨论如何对上述不等式求最大值,首先我们有
所以我们可以使用蒙特卡洛方法以及梯度下降更新上述参数。
显然我们有
但是注意到$\nabla_{\phi} \mathcal{L}(\mathbf{x} ; \theta, \phi)$比较复杂,无法直接写出。